In this small project, I went out of my way to create my own fire simulation in Houdini and have it displayed in an environment in Unreal Engine.
When dealing with translucent and additive materials, shader overdraw is inevitable, especially when creating realistic fire and smoke. Although my performance wasn't negatively impacted—despite my particles and sprites exceeding the red zone into pink/white—it is always important to minimize overdraw to save performance when making games.
In these clips, I tried my best to keep overdraw to a minimum by minimizing the particle spawn rate and only keeping the most important particles. I also had the particle sprites trimmed by enabling "Material Cutout Texture" in the emitter settings.
Spreading the spawn location was also a good idea to minimize overlapping rendering.
The smoke emitter, on the other hand, was a real anxiety-inducer when viewed from the shader complexity visualizer.
As the smoke from the burning car continuously spewed out and lingered in the air longer, the particles stacked on top of each other and quickly turned pink.
I experimented with using an opaque material with dithered alpha to fake transparency for the smoke, which eliminated the issue entirely. However, the smoke ended up looking very odd and out of place.
What I ended up doing was to decrease the spawn rate and change the particle size over its lifetime.
Additionally, culling the particles based on view and camera distance is a good way to minimize overdraw when dealing with large amounts of smoke or other particles in the scene.
Assets and models from FAB:
Post-Apocalyptic Urban City
Drivable Car "Infrod"